exports.getRandomItemsShuffle = function getRandomItemsShuffle(array, count) {
    // 1. 创建原数组的副本，避免修改原数组
    const shuffled = [...array];

    let currentIndex = shuffled.length;
    let randomIndex;
    let temporaryValue;

    // 2. 当还有元素需要洗牌时...
    while (currentIndex !== 0) {
        // 选取一个剩余的元素...
        randomIndex = Math.floor(Math.random() * currentIndex);
        currentIndex--;

        // 并与当前元素交换
        temporaryValue = shuffled[currentIndex];
        shuffled[currentIndex] = shuffled[randomIndex];
        shuffled[randomIndex] = temporaryValue;
    }

    // 3. 取打乱后的数组的前 count 项
    return shuffled.slice(0, count);
}